package com.earl.eatbao.commons.service;

import java.io.Serializable;
import java.util.List;

import com.earl.eatbao.commons.domain.AbstractEntity;

/*import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
*/
public interface BaseService<T extends AbstractEntity<?>, E extends Serializable> {
	
	List<T> update(List<T> entities);

	T save(T entity);

	T findOne(E id);

	boolean exists(E Id);

	long count();

	void delete(E id);

	void delete(T entity);

	void deleteAll();

	Iterable<T> findAll();
	
	Iterable<T> findAll(int start,int size);
	
//	List<T> search(E criteria);
	
//	List<T> searchQuery(E userQuery);
/*
	List<T> findAll(Sort sort) throws Exception;

	List<T> search(E criteria, Sort sort);

	Page<T> search(E criteria, Pageable pageable);
*/
//
//	/**
//	 * 精确搜索
//	 * @author 黄祥谦.
//	 * @param queryObject
//	 * @return
//	 */
//	List<T> searchAccurate(T queryObject);
//	
//	/**
//	 * 分页精确搜索
//	 * @author 黄祥谦.
//	 * @param user
//	 * @param i
//	 * @param j
//	 * @return
//	 */
//	List<T> searchAccurate(T user, int i, int j);
//	
//	/**
//	 * 模糊查询
//	 * @author 黄祥谦.
//	 * @param queryObject
//	 * @return
//	 */
//	List<T> searchSimilarity(T queryObject);
//	
//	List<T> searchSimilarity(T queryObject, int start, int size);

}
